// fenf封装倒计时逻辑函数
import { computed, onUnmounted, ref } from 'vue';
import dayjs from 'dayjs';

export const useCountDown = () => {
  // 1.响应式数据
  let timer = null;
  const time = ref(0);
  // 2.开启倒计时函数
  // 格式化时间 为xx分xx秒
  const formatTime = computed(() => dayjs.unix(time.value).format('mm分ss秒'));
  const start = (currentTime) => {
    // 开始倒计时逻辑-核心逻辑，每隔一秒钟就减一秒
    time.value = currentTime;
    timer = setInterval(() => {
      time.value--;
    }, 1000);
  };

  // 组件销毁时清楚定时器
  onUnmounted(() => {
    timer && clearInterval(timer);
  });

  return {
    formatTime,
    start,
  };
};
